Крестик.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 
(*~\Глагол\Отделы\Поле~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ Крестик;
(*============================================================================* 
 * НАЗНАЧЕНИЕ: крестик - потомок надела
 *============================================================================*)
ИСПОЛЬЗУЕТ 
  Надел,
  Поле,
  Цепь ИЗ "..\Иное\",
  Окно ИЗ "..\Обмен\",
  Ввод ИЗ "..\Обмен\";
ВИД
  Доступ-=ДОСТУП К Вид;
  Вид-=НАБОР(Надел.Вид)
    надпись:Надел.Надпись;
    буквица:ЦЕЛ;
    отмечен+:КЛЮЧ
  КОН;
  Посылка-=НАБОР(Ввод.Посылка)
    крестик-:Доступ
  КОН;

(******************************************************************************)
ЗАДАЧА Отрисовка(крестик:Доступ);
УКАЗ
  ЕСЛИ крестик.отмечен ТО
    крестик.надпись[1]:="х"
  ИНАЧЕ
    крестик.надпись[1]:=" "
  КОН;
  Надел.ВыводНадписи(крестик,крестик.надпись,0);
  ЕСЛИ крестик.состояние = Надел.сВыбран ТО
    Окно.ПереместитьУказку(крестик.вс,крестик.лк+1);
    Окно.РазмерУказки(15)
  КОН
КОН Отрисовка;

(******************************************************************************)
ЗАДАЧА Работа(крестик:Доступ);
ПЕР
  посылка:Посылка;
  поле:Поле.Доступ;
УКАЗ
  крестик.отмечен:=НЕ крестик.отмечен;
  Отрисовка(крестик);
  (* обратная связь *)
  поле:=крестик.поле(Поле.Доступ);
  посылка.крестик:=крестик;
  поле.Приём(поле,посылка)
КОН Работа;

(******************************************************************************)
ЗАДАЧА Приём(надел:Надел.Доступ; посылка+:Ввод.Посылка);
ПЕР
  крестик:Доступ;
УКАЗ
  крестик:=надел(Доступ);
  ДЛЯ посылка ВИДА
  | Поле.Отрисовка:
      Отрисовка(крестик)
  | Ввод.ОтМышки:
      ЕСЛИ посылка.события = {} ТО
        (* просто нажали мышку *)
        Работа(крестик)
      КОН
  | Ввод.ОтКлавиш:
      ЕСЛИ посылка.знак = ' ' ТО
        Работа(крестик);
        посылка.код:=0
      КОН
  | Поле.Буквица:
      ЕСЛИ посылка.буквица = крестик.буквица ТО
        Работа(крестик);
        посылка.буквица:=0
      КОН
  ИНАЧЕ
  КОН
КОН Приём;

(******************************************************************************)
ЗАДАЧА Создать-(верх,лево:ЦЕЛ; цепь-:ЦЕПЬ):Доступ;
ПЕР
  крестик:Доступ;
  надпись:Надел.Надпись;
  колонок:ЦЕЛ;
УКАЗ
  СОЗДАТЬ(крестик);
  надпись:="[ ] ";
  Цепь.Добавить(надпись,цепь);
  Надел.СчитатьНадпись(надпись,крестик.надпись,колонок,крестик.буквица);
  Надел.Подготовить(крестик,верх,лево,1,колонок,{Надел.прВыбираемый},Приём);
  ВОЗВРАТ крестик
КОН Создать;

КОН Крестик.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы